From eced73c44176b657c9b621165be225422a9889e3 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 14 Jan 2012 13:26:09 -0500 Subject: [PATCH] GtkApplicationWindow: Fix size-request logic When finding the width for a given height, we can pass the full height to both the menubar and the content. Instead, give the menubar its minimum height, and give the rest to the content. --- gtk/gtkapplicationwindow.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gtk/gtkapplicationwindow.c b/gtk/gtkapplicationwindow.c index 777ab8dcd3..3bf318f3bc 100644 --- a/gtk/gtkapplicationwindow.c +++ b/gtk/gtkapplicationwindow.c @@ -603,15 +603,21 @@ gtk_application_window_real_get_preferred_width_for_height (GtkWidget *widget, gint *natural_width) { GtkApplicationWindow *window = GTK_APPLICATION_WINDOW (widget); + gint menubar_height; + + if (window->priv->menubar != NULL) + gtk_widget_get_preferred_height (window->priv->menubar, &menubar_height, NULL); + else + menubar_height = 0; GTK_WIDGET_CLASS (gtk_application_window_parent_class) - ->get_preferred_width_for_height (widget, height, minimum_width, natural_width); + ->get_preferred_width_for_height (widget, height - menubar_height, minimum_width, natural_width); if (window->priv->menubar != NULL) { gint menubar_min_width, menubar_nat_width; - gtk_widget_get_preferred_width_for_height (window->priv->menubar, height, &menubar_min_width, &menubar_nat_width); + gtk_widget_get_preferred_width_for_height (window->priv->menubar, menubar_height, &menubar_min_width, &menubar_nat_width); *minimum_width = MAX (*minimum_width, menubar_min_width); *natural_width = MAX (*natural_width, menubar_nat_width); } -- 2.30.2